﻿#include "PythonRegister.h"
#include "FITK_Kernel/FITKPython/FITKPythonInterface.h"
#include "PythonInterface/GlobalFiles.h"
#include "PythonInterface/SEAShellWapper.h"
#include "PythonInterface/SEABeamWapper.h"
#include "PythonInterface/SEACavityWapper.h"
#include "PythonInterface/SEAAutoWapper.h"
#include "PythonInterface/MaterialFLuidsWapper.h"
#include "PythonInterface/MaterialIsotropicSolidsWapper.h"
#include "PythonInterface/MaterialsViscoElasticSolidsWapper.h"
#include "PythonInterface/MaterialFoamsWapper.h"
#include "PythonInterface/MaterialFibersWapper.h"
#include "PythonInterface/PhyscisPropBeamWapper.h"
#include "PythonInterface/PhyscisPropUniformWapper.h"
#include "PythonInterface/PhyscisPropGeneralLaminateWapper.h"
#include "PythonInterface/PhyscisPropRibbedWapper.h"
#include "PythonInterface/MaterialFEWapper.h"
PyRegister::PyRegister()
{
    _pyInterface = Python::FITKPythonInterface::getInstance();
}

void PyRegister::registWapper()
{
    _pyInterface->addDecorator(new FilesWapper());
    _pyInterface->registerCPPClass("Files", "", "Global");

    _pyInterface->addDecorator(new SEAShellWapper());
    _pyInterface->registerCPPClass("SEAShell", "", "SEA");

    _pyInterface->addDecorator(new SEABeamWapper());
    _pyInterface->registerCPPClass("SEABeam", "", "SEA");

    _pyInterface->addDecorator(new SEACavityWapper());
    _pyInterface->registerCPPClass("SEACavity", "", "SEA");

    _pyInterface->addDecorator(new SEAAutoWapper());
    _pyInterface->registerCPPClass("SEAAuto", "", "SEA");

    _pyInterface->addDecorator(new MaterialFLuidsWapper());
    _pyInterface->registerCPPClass("Fluids", "", "Material");

    _pyInterface->addDecorator(new MaterialIsotropicSolidsWapper());
    _pyInterface->registerCPPClass("IsotropicSolids", "", "Material");

    _pyInterface->addDecorator(new MaterialsViscoElasticSolidsWapper());
    _pyInterface->registerCPPClass("ViscoElasticSolids", "", "Material");

    _pyInterface->addDecorator(new MaterialFoamsWapper());
    _pyInterface->registerCPPClass("Foams", "", "Material");

    _pyInterface->addDecorator(new MaterialFibersWapper());
    _pyInterface->registerCPPClass("Fibers", "", "Material");

    _pyInterface->addDecorator(new PhyscisPropBeamWapper());
    _pyInterface->registerCPPClass("Beam", "", "PhyscisProp");

    _pyInterface->addDecorator(new PhyscisPropUniformWapper());
    _pyInterface->registerCPPClass("Uniform", "", "PhyscisProp");

    _pyInterface->addDecorator(new PhyscisPropGeneralLaminateWapper());
    _pyInterface->registerCPPClass("GeneralLaminate", "", "PhyscisProp");

    _pyInterface->addDecorator(new PhyscisPropRibbedWapper());
    _pyInterface->registerCPPClass("Ribbed", "", "PhyscisProp");

    _pyInterface->addDecorator(new MaterialFEWapper());
    _pyInterface->registerCPPClass("FE", "", "Material");

    _pyInterface->importPython();
}

